package com.zhz.common.tool.oss;

import com.zhz.common.tool.oss.huaweicloud.VO.FileUploadStatusVO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * 公有的接口层
 * @author zhouhengzhe
 */
public interface OssService {

    /**
     * 文件
     *
     * @param uploadFile 上传的文件
     * @param fileName   文件名称
     * @param bucketName 桶名称
     * @return
     */
    String uploadFile(MultipartFile uploadFile, String fileName, String bucketName);

    /**
     * 上次文件流
     *
     * @param fileName    文件名称
     * @param bucketName  桶名称
     * @param out         文件流
     * @param contentType 文件类型
     * @return
     */
    String uploadFileByte(String fileName, String bucketName, byte[] out, String contentType);

    /**
     * 获取文件上传进度
     *
     * @param fileName   文件名称
     * @param bucketName 桶名称
     * @return 返回文件上传进度
     */
    FileUploadStatusVO getFileUploadPlan(String fileName, String bucketName);

    /**
     * 文件下载
     *
     * @param response   响应
     * @param fileName   文件名称
     * @param bucketName 桶名称
     */
    void fileDownload(HttpServletResponse response, String fileName, String bucketName);

    /**
     * 删除文件
     *
     * @param fileName   文件名称
     * @param bucketName 桶名称
     */
    void deleteFile(String fileName, String bucketName);

}
